#ifndef __CHARA_MANAGER_H__
#define __CHARA_MANAGER_H__

#include "../../Common/Singleton.h"
#include "Character.h"
#include "../GameDefine.h"
#include <vector>

class CharaManager
	: public Singleton< CharaManager >
{

public:

	CharaManager(void);
	virtual ~CharaManager(void);

public:

	int			GetCount	( void ) const { return m_characters.size(); }
	Character*	GetCharacter( int index );

public:

	class PlayerChara* CraetePlayerChara( GameDefine::PLAYER_INDEX id, const Character::Parameter& param, 
										  const Point& mapPoint, const Vector2& pos, int textureHandle );

	class EnemyChara* CreateEnemyChara( unsigned int type, const Character::Parameter& param, 
										const Point& mapPoint, const Vector2& pos, int textureHandle );

public:

	void Clear	( void );
	void Update	( float delta );
	void Draw	( void );

private:

	std::vector< Character* > m_characters;
};

#endif // end of __CHARA_MANAGER_H__
